Analiza czynników wpływających na poziom stresu

Autor

Joanna Maciąg, Dominika Stępniewska

1. Cel projektu

Celem projektu jest przeprowadzenie analizy dotyczącej snu i codziennych nawyków w celu zidentyfikowania czynników wpływających na poziom stresu.

2. Opis zbioru badawczego

Zbiór danych Sleep Health and Lifestyle Dataset zawiera informacje dotyczące snu i codziennych nawyków. Składa się z 13 kolumn oraz 374 wierszy.

2.1. Opis zmiennych

Tabela 1: Tabela opisu zmiennych

nazwa zmiennej

opis

cecha

skala

Gender

płeć (Male - mężczyzna, Female - kobieta)

jakościowa

normalna

Age

wiek w latach

ilościowa

ilorazowa

Occupation

zawód

jakościowa

porządkowa

Sleep Duration

czas snu na dobę w godzinach

ilościowa

ilorazowa

Quality of Sleep

subiektywna ocena jakości snu w skali od 1 do 10

jakościowa

porządkowa

Physical Activity Level

czas dziennej aktywności fizycznej w minutach

ilościowa

ilorazowa

Stress Level

subiektywna ocena doświadczanego poziomu stresu w skali od 1 do 10

jakościowa

porządkowa

BMI Category

kategoria BMI (Underweight - niedowaga, Normal - waga prawidłowa, Overweight - nadwaga, Obese - otyłość)

jakościowa

porządkowa

Blood Pressure

pomiar ciśnienia krwi wyrażany jako ciśnienie skurczowe na ciśnienie rozkurczowe w jednostce milimetrów słupa rtęci

ilościowa

ilorazowa

Heart Rate

tętno spoczynkowe w uderzeniach na minutę

ilościowa

ilorazowa

Daily Steps

liczba przebywanych dziennie kroków

ilościowa

ilorazowa

Sleep Disorder

występowanie zaburzeń snu (None - brak, Insomnia - bezsenność, Sleep Apnea - bezdech senny)

jakościowa

porządkowa

3. Przygotowanie danych

3.1. Braki danych

Zbiór nie zawiera braków danych.

3.2. Duplikacja wierszy

Ze względu na specyfikę naszych danych - dużą liczbę zmiennych kategorycznych oraz wartości zmiennych ilościowych podane z pewnymi przybliżeniami, nie usuwamy duplikatów występujących w zbiorze. Nie wprowadzają one istotnych zakłóceń w budowanych przez nas modelach, a ich usunięcie mogłoby przycznić się do utraty cennych spostrzeżeń.

3.3. Poprawność danych

Zmienna ‘BMI Category’ przyjmuje wartość ‘Normal Weight’, która nie jest zamieszczona w opisie zmiennych przygotowanym przez autorów zbioru danych. Zamieniamy tę wartość na wartość ‘Underweight’, która nie występuje we wczytanym zbiorze, natomiast jest uwzględniona w opisie.

3.4. Podstawowe statystyki

Tabela 2: Tabela podstawowych statystyk

Basic Statistic

Age

Sleep Duration

Physical Activity Level

Heart Rate

Daily Steps

minimum

27.00

5.80

30.00

65.00

3,000.00

kwantyl pierwszy

35.25

6.40

45.00

68.00

5,600.00

mediana

43.00

7.20

60.00

70.00

7,000.00

średnia

42.18

7.13

59.17

70.17

6,816.84

kwantyl trzeci

50.00

7.80

75.00

72.00

8,000.00

maximum

59.00

8.50

90.00

86.00

10,000.00

odchylenie standardowe

8.67

0.80

20.83

4.14

1,617.92

Z powyższej Tabela 2 możemy odczytać podstawowe statystyki, które w kolejnym etapie posłużą nam do analizy elementów odstających.

Zauważamy, że różnica między średnią a medianą w każdej z kolumn jest niewielka. Podobnie w przypadku kwantyli, kwantyl pierwszy \((Q_1)\) i kwantyl trzeci \((Q_3)\) są równo oddalone od mediany, zatem oznacza to że rozkład danych jest symetryczny.

3.5. Elementy odstające

Do zidentyfikowania elementów odstających posłużyłyśmy się odległością Mahalanobisa. Niska wartość tej odległości mówi o tym, jak dany punkt jest blisko centrum rozkładu. Natomiast wysoka wartość jak dany punkt jest daleko od centrum rozkładu.

Tabela 3: Tabela elementów odstających

Id

Age

Sleep Duration

Physical Activity Level

Heart Rate

Daily Steps

Mahalanobis Distance

Outlier

4

35

7.4

60

84

3,300

21.681

TRUE

5

38

7.4

60

84

3,300

21.273

TRUE

6

49

8.1

85

86

3,700

33.778

TRUE

51

49

8.1

85

86

3,700

33.778

TRUE

W naszym zbiorze wartości zbliżone do 20 są uważane za normalne. Wynika z tego, że odległości większe od 21 wskazują elementy odstające. Co przedstawia powyższa Tabela 3.

W kolejnym kroku usuwamy elementy odstające, aby ułatwić pracę na zbiorze.

4. Analiza zbioru badawczego

4.1. Rozkłady zmiennych

Poniższe wykresy przedstawiają rozkłady zmiennych.

Rysunek 1: Wykresy słupkowe zmiennych jakościowych Quality of Sleep i Stress Level

Rysunek 2: Wykres słupkowy zmiennej jakościowej Occupation

Rysunek 3: Wykresy słupkowe zmiennych jakościowych Gender, BMI Category i Sleep Disorder

Rysunek 4: Histogramy zmiennych ilościowych Age i Sleep Duration

Rysunek 5: Histogramy zmiennych ilościowych Physical Activity Level, Heart Rate i Daily Steps

Szerokości przedziałów w histogramach Rysunek 4 i Rysunek 5 zostały dobrane zgodnie z regułą Freedmana-Diaconisa:

\[ binwidth = \frac{2\cdot IQR(x)}{\sqrt[3]{n}} \]

gdzie \(IQR(x)\) to zakres międzykwartylowy, a \(n\) - liczba obserwacji.

4.2. Zależności między zmiennymi

Rysunek 6: Wykres zależności między tętnem spoczynkowym, długością snu a wiekiem w podziale na odczuwane poziomy stresu

Z wykresu Rysunek 6 możemy odczytać, że:

  • najniższy poziom stresu (3) występuje u osób w wieku powyżej 50 lat, które śpią powyżej 8 godzin dziennie,

  • tętno osób o niskim poziomie stresu (3 - 4) jest mniejsze niż 72 uderzenia na minutę, natomiast tętno osób o poziomie stresu 5 - 6 dla przeważającej liczby obserwacji jest mniejsze niż 77 uderzeń na minutę,

  • najwyższy poziom stresu (8) występuje u osób w przedziałach wiekowych 29 - 34 lata oraz 48 - 51 lat,

  • wraz ze zmniejszeniem długości snu wzrasta poziom odczuwanego stresu.

4.2.1. Test niezależności chi-kwadrat

Rysunek 7: Wykres liczby osób z zaburzeniami snu w podziale na płeć

Z wykresu Rysunek 7 możemy odczytać, że więcej mężczyzn niż kobiet nie cierpi na żadne zaburzenie snu. W dodatku dużo więcej kobiet niż mężczyzn cierpi na bezdech senny.

Wnioskujemy więc, że zaburzenie snu zależy od płci. Naszą obserwację potwierdzimy testem niezależności chi-kwadrat.

Hipoteza zerowa \((H_0)\): zaburzenie snu i płeć są niezależne

Hipoteza alternatywna \((H_1)\): zaburzenie snu i płeć nie są niezależne


    Pearson's Chi-squared test

data:  table(dane$Sleep.Disorder, dane$Gender)
X-squared = 59.588, df = 2, p-value = 1.15e-13

Wartość \(p\) jest mniejsza niż przyjęty poziom istotności \(0.05\), więc odrzucamy hipotezę zerową. Możemy więc twierdzić, że istnieje istotna zależność między zmiennymi zaburzenie snu i płeć.

4.3. Analiza wariancji

Rysunek 8: Wykres rozkładu wieku w podziale na poziom odczuwanego poziomu stresu

Z wykresu Rysunek 8 możemy odczytać, że zmienna wiek jest najbardziej zróżnicowana dla odczuwanego poziomu stresu równego 8, ponieważ w tej kategorii rozstęp międzykwartylowy jest największy. Na podstawie wykresu wnioskujemy również, że mediana wieku osób różni się w poszczególnych poziomach odczuwanego stresu. Aby porównać średnie wieku między grupami przeprowadzimy test ANOVA.

Najpierw sprawdzimy założenia:

  1. Normalność rozkładu

Do zbadania normalności rozkładu użyjemy testu Shapiro-Wilka.

Hipoteza zerowa \((H_0)\): dane pochodzą z populacji o rozkładzie normalnym

Hipoteza alternatywna \((H_1)\): dane pochodzą z populacji o innym rozkładzie niż normalny

Stress Level

p value

3

0.0000000001628461

4

0.0000004202933639

5

0.0035287995317446

6

0.0000000751151247

7

0.0000001853488739

8

0.0000000015070829

W każdej z grup wartość \(p\) jest mniejsza niż przyjęty poziom istotności \(0.05\), zatem nie jest spełnione założenie o normalności rozkładu.

  1. Homogeniczność wariancji

Do zbadania homogeniczności wariancji użyjemy testu Bartletta.

Hipoteza zerowa \((H_0)\): Wariancje w grupach są równe

Hipoteza alternatywna \((H_1)\): Co najmniej jedna z grup ma inną wariancję niż pozostałe


    Bartlett test of homogeneity of variances

data:  dane$Age and dane$Stress.Level
Bartlett's K-squared = 94.704, df = 5, p-value < 2.2e-16

Wartość \(p\) jest mniejsza niż przyjęty poziom istotności \(0.05\), zatem odrzucamy hipotezę zerową.

4.3.1. Test Kruskala-Wallisa

Założenia o normalności rozkładu i homogeniczności wariancji nie są spełnione, zatem zastosujemy test Kruskalla-Wallisa.

Hipoteza zerowa \((H_0)\): Nie ma istotnych różnic w medianach wartości wieku między kategoriami poziomu stresu

Hipoteza alternatywna \((H_1)\): Istnieją istotne różnice w medianach wartości wieku między co najmniej jedną parą kategorii poziomu stresu


    Kruskal-Wallis rank sum test

data:  Age by Stress.Level
Kruskal-Wallis chi-squared = 179.84, df = 5, p-value < 2.2e-16

Wartość \(p\) jest mniejsza niż przyjęty poziom istotności \(0.05\), zatem odrzucamy hipotezę zerową na korzyść hipotezy alternatywnej. Oznacza to, że różnice median wieku między co najmniej jedną parą kategorii są istotne statystycznie.

4.3.2. Test Wilcoxona

Z testu Kruskala-Wallisa wnioskujemy, że istnieją znaczące różnice wieku osób między odczuwanymi poziomami stresu. Aby sprawdzić, które grupy się różnią zastosujemy test Wilcoxona z korektą Bonferroniego.

\(H_0\): Nie ma istotnych różnic w medianach wieku między poziomami stresu

\(H_1\): Istnieją istotne różnice w medianach wieku między poziomami stresu


    Pairwise comparisons using Wilcoxon rank sum test with continuity correction 

data:  dane$Age and dane$Stress.Level 

  3       4       5       6       7      
4 < 2e-16 -       -       -       -      
5 < 2e-16 1.00000 -       -       -      
6 < 2e-16 2.6e-09 3.8e-10 -       -      
7 4.2e-15 0.24406 1.4e-05 2.7e-08 -      
8 < 2e-16 1.00000 1.00000 0.00048 1.00000

P value adjustment method: bonferroni 

Możemy odczytać, że \(p\) wartość jest większa niż \(0.05\) dla poziomów stresu 4 i 5, 4 i 7, 4 i 8, 5 i 8 oraz 7 i 8, zatem między tymi poziomami stresu nie ma istotnych różnic w medianach wieku. Pomiędzy pozostałymi poziomami stresu istnieją istotne różnice w medianach wieku.

5. Budowa modeli klasyfikacyjnych

5.1. Korelacje zmiennych

Do przedstawienia korelacji zmiennych użyjemy współczynnika korelacji rang Spearmana.

Rysunek 9: Wykres korelacji zmiennych

Z wykresu Rysunek 9 możemy odczytać, że zmienne ‘Stress Level’ i ‘Quality of Sleep’ są ze sobą silnie skorelowane. Jest to korelacja ujemna, co oznacza, że wraz ze wzrostem wartości jednej zmiennej maleją wartości drugiej zmiennej. Silna korelacja ujemna występuje również pomiędzy zmiennymi ‘Stress Level’ i ‘Sleep Duration’.

Pomiędzy zmiennymi ‘Stress Level’ i ‘Heart Rate’ występuje silna korelacja dodatnia, co świadczy o tym, że wraz ze wzrostem wartości jednej zmiennej rosną wartości drugiej zmiennej. Silne korelacje dodatnie występują również pomiędzy zmiennymi ‘Quality of Sleep’ i ‘Sleep Duration’ oraz ‘Daily Steps’ i ‘Physcial Activity Level’.

5.2. Podział zbioru na zbiór uczący i zbiór testowy

Dzielimy dane losowo na zbiór uczący i zbiór testowy w stosunku 80% do 20%.

5.3. Analiza dyskryminacyjna

Do analizy dyskryminacyjnej wykorzystujemy tylko zmienne ilościowe.

Tabela 4: Tabela ważności zmiennych w modelu analizy dyskryminacyjnej

zmienna

ważność zmiennej

Age

3.522348

Sleep Duration

4.852192

Physical Activity Level

5.031611

Heart Rate

3.742326

Daily Steps

4.635133

W modelu analizy dyskryminacyjnej najważniejszą zmienną (posiadającą największą sumę wartości bezwzględnych wag dla wszystkich funkcji dyskryminacyjnych) jest ‘Physical Activity Level’.

Rysunek 10: Macierz pomyłek

Po przeprowadzeniu predykcji na zbiorze testowym, poprawnie zaklasyfikowano w sumie 57 obserwacji. Najwięcej błędów klasyfikacji pojawiło się dla obserwacji o poziomie odczuwanego stresu równym 4. Aż osiem z nich zaklasyfikowano jako poziom 5. Pięć obserwacji o poziomie stresu równym 8 zaklasyfikowano jako poziom 7. W pozostałych poziomach odczuwanego stresu błędnie zaklasyfikowano po jednej obserwacji.

\(77\%\) wszystkich przypadków zaklasyfikowano poprawnie.

5.4. Drzewo decyzyjne typu CART

Ze względu na dużą liczbę przyjmowanych wartości (kategorii) do budowy algorytmu drzewa decyzyjnego typu CART nie używamy zmiennych ‘Occupation’ i ‘Blood Pressure’. W ten sposób unikniemy przeuczenia modelu.

Rysunek 11: Drzewo decyzyjne typu CART

Drzewo decyzyjne typu CART Rysunek 11 służy do przypisania obserwacji do jednej z sześciu klas ‘Stress Level’. Na węzłach wyświetlony jest stosunek liczby poprawnych klasyfikacji do liczby wszystkich obserwacji w danym węźle. Procenty oznaczają procentowy udział obserwacji w danym węźle do wszystkich obserwacji zbioru uczącego.

Tabela 5: Tabela ważności zmiennych drzewa typu CART

zmienna

ważność zmiennej

Sleep Duration

154.43699

Age

90.43250

Quality of Sleep

83.55703

Physical Activity Level

73.39194

Heart Rate

62.02632

Daily Steps

58.95960

BMI Category

42.64169

Gender

38.25826

Sleep Disorder

17.76089

Najważniejszą zmienną w drzewie typu CART jest ‘Sleep Duration’.

Po wytrenowaniu modelu na zbiorze uczącym, jego skuteczność na zbiorze testowym wynosi \(96\%\).

5.5 Las losowy


Call:
 randomForest(formula = Stress.Level ~ ., data = zbior_uczacy,      ntree = 150) 
               Type of random forest: classification
                     Number of trees: 150
No. of variables tried at each split: 3

        OOB estimate of  error rate: 2.7%
Confusion matrix:
   3  4  5  6  7  8 class.error
3 56  0  0  0  0  0  0.00000000
4  0 53  0  2  0  0  0.03636364
5  0  0 54  2  0  0  0.03571429
6  0  2  0 38  0  1  0.07317073
7  0  0  0  0 38  0  0.00000000
8  0  0  0  1  0 49  0.02000000

Błąd OOB (Out-of-Bag) odnosi się do próbek danych, które nie zostały użyte podczas trenowania modelu. Im niższa jego wartość tym jakość modelu jest lepsza. W naszym przypadku wynosi on \(2.7\%\).

Rysunek 12: Macierz pomyłek

Po przeprowadzeniu predykcji na zbiorze testowym, poprawnie zaklasyfikowano 72 obserwacje. Jak możemy zauważyć błąd klasyfikacji pojawił się dwa razy. Model dla obserwacji o poziomie odczuwanego stresu 6 i 7 przewidział poziom 4.

Po wytrenowaniu modelu na zbiorze uczącym, około \(97\%\) przypadków zaklasyfikowano zgodnie z rzeczywistymi wartościami.

Rysunek 13: Wykres ważności zmiennych w modelu lasu losowego

Obserwujemy, że najbardziej istotnymi zmiennymi w przewidywaniach modelu są zmienne ‘Sleep Duration’, ‘Quality of Sleep’. Natomiast zmiennymi, które mają najmniejszy wpływ na model są zmienna ‘BMI Category’ oraz ‘Sleep Disorder’.

6. Podsumowanie

Model

Analiza dyskryminacyjna

Drzewo decyzyjne

Las losowy

F1 score

0.78

0.94

0.97

Accuracy

0.77

0.96

0.97

Jak możemy zauważyć, modelem najmniej dopasowanym do danych okazał się model analizy dyskryminacyjnej, w którym dobrze zaklasyfikowano około \(77\%\) wszystkich przypadków. Najlepiej dopasowanym do danych modelem jest las losowy, który tylko nieznacznie przewyższa model drzewa decyzyjnego typu CART. W tych modelach skuteczność wyniosła \(97\%\) i \(96\%\).

Podział pracy

  1. Cel projektu - Joanna Maciąg

  2. Opis zbioru badawczego - Joanna Maciąg

  3. Przygotowanie danych - Joanna Maciąg, Dominika Stępniewska

  4. Analiza zbioru badawczego

    4.1. Rozkłady zmiennych - Dominika Stępniewska

    4.2. Zależności między zmiennymi - Dominika Stępniewska

    4.3. Analiza wariancji - Dominika Stępniewska

  5. Budowa modeli klasyfikacyjnych

    5.1. Korelacje zmiennych - Dominika Stępniewska

    5.3. Analiza dyskryminacyjna - Dominika Stępniewska

    5.4. Drzewo decyzyjne typu CART - Dominika Stępniewska

    5.5. Las losowy - Joanna Maciąg

  6. Podsumowanie - Joanna Maciąg